package org.itboys.baseobject.service;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.itboys.baseobject.dto.KeyValuesTreeConfigDto;
import org.itboys.baseobject.entity.KeyValuesTreeConfig;
import org.itboys.mongodb.core.MongoDataSource;
import org.itboys.mongodb.service.BaseService;
import org.springframework.stereotype.Service;

import com.google.common.collect.Lists;

/**
 * 树形的 key values config
 * @author weisky
 *
 */
@Service
public class KeyValuesTreeConfigService extends BaseService<KeyValuesTreeConfig, Long>{
	
	private static final long serialVersionUID = 1760403700244286364L;
	
	@Resource(name="baseMongoDS")
	private MongoDataSource ds;

	@Override
	protected MongoDataSource getMongoDataSource() {
		return ds;
	}

	@Override
	protected Class<KeyValuesTreeConfig> getEntityClass() {
		return KeyValuesTreeConfig.class;
	}
	
	public void save(KeyValuesTreeConfig kvt){
		if(kvt.getId() != 0){
			super.update(kvt);
		}else{
			super.save(kvt);
		}
	}
	
	public List<KeyValuesTreeConfigDto> listOvv(Map<String, Object> param){
		List<KeyValuesTreeConfig> list = super.list(param);
		if(!list.isEmpty()){
			List<KeyValuesTreeConfigDto> listDto = Lists.newArrayListWithExpectedSize(list.size());
			for(KeyValuesTreeConfig kvt : list){
				KeyValuesTreeConfigDto kvtd = new KeyValuesTreeConfigDto();
				kvtd.setId(kvt.getId());
				kvtd.setKey(kvt.getKey());
				kvtd.setValue(kvt.getValue());
				kvtd.setDesc(kvt.getDesc());
				kvtd.set_parentId(kvt.getParentId());
				kvtd.setParentId(kvt.getParentId());
				kvtd.setOrder(kvt.getOrder());
				listDto.add(kvtd);
			}
			return listDto;
		}
		return null;
	}
	
}
